home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1997 August / Walnut Creek CDROM.7z / VOL_400 / 466_01 / EXAMPLE / TEMPLATE.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1996-12-20  |  2.0 KB  |  108 lines

  1. /* @doc
  2.  *
  3.  * @module TEMPLATE.CPP - Some Template Examples |
  4.  *
  5.  * This module shows how to code Autoduck tags for C++ template
  6.  * classes and member functions.
  7.  *
  8.  * Autoduck example by Eric Artzt (erica@microsoft.com)
  9.  */
  10.  
  11.  
  12. //@class Template class
  13. //@tcarg class | T | A class to store in stack
  14. //@tcarg int | i | Initial size of stack
  15.  
  16. template<class T, int i> class MyStack
  17. {
  18.     //@cmember The top
  19.  
  20.     T*  pStack;
  21.  
  22.     //@cmember The stack
  23.  
  24.     T StackBuffer[i];
  25.  
  26.     //@cmember The count
  27.  
  28.     int cItems = i * sizeof(T);
  29.  
  30. public:
  31.     //@cmember Constructor
  32.  
  33.     MyStack( void );
  34.  
  35.     //@cmember Addd one
  36.  
  37.     void push( const T item );
  38.  
  39.     //@cmember Remove one
  40.  
  41.     T& pop( void );
  42.  
  43.     //@cmember No link - function template args
  44.  
  45.     T& popper<class B>( B foo);
  46.  
  47.     //@cmember Link - function template args
  48.  
  49.     T& popperlink<class B>( B foo);
  50. };
  51.  
  52.  
  53. //@func Template function test
  54. //@tfarg class | B | A class.
  55. //@tfarg class | C | Another class.
  56.  
  57. template<class B, class C>
  58. int TemplateFunc(
  59.     B foo,                 //@parm A Foo
  60.     C bar)                 //@parm A Bar
  61. {
  62. }
  63.  
  64. //@mfunc Function template args
  65. //@tfarg class | B | A class to pass
  66. //@tcarg class | T | A class to store in stack
  67. //@tcarg int | i | Initial size of stack
  68.  
  69. template< class T, int i > 
  70. MyStack< T, i>::popperlink<class B>( void )
  71.  
  72. }
  73.  
  74. //@mfunc Template constructor function
  75. //@tcarg class | T | A class to store in stack
  76. //@tcarg int | i | Initial size of stack
  77.  
  78. template< class T, int i > 
  79. MyStack< T, i>::MyStack( void )
  80.  
  81. }
  82.  
  83. //@mfunc Pushes something on stack
  84. //@tcarg class | T | A class to store in stack
  85. //@tcarg int | i | Initial size of stack
  86.  
  87. template< class T, int i > 
  88. void MyStack< T, i >::push( 
  89.     const T item )  //@parm Item to push on stack
  90.  
  91. }
  92.  
  93. //@mfunc Pops something off stack
  94. //@tcarg class | T | A class to store in stack
  95. //@tcarg int | i | Initial size of stack
  96.  
  97. template< class T, int i > 
  98. T& MyStack< T, i >::pop( void )
  99.  
  100. }
  101.  
  102.  
  103.  
  104.